//
//  HWStarRatingView.h
//  OCDome
//
//  Created by 李含文 on 2020/9/4.
//  Copyright © 2020 李含文. All rights reserved.
//

#import <UIKit/UIKit.h>

#define HWBACKGROUND_STAR @"star_gray"   // 未选中图片
#define HWFOREGROUND_STAR @"star_yellow" // 选中图片
#define HWDEFAULT_OF_STARS  5            // 默认星星总数
#define HWDEFAULT_MIN_OF_STARS  1        // 默认最少评星数
#define HWDEFAULT_STYLE  HWStarStyleHalf // 默认样式
NS_ASSUME_NONNULL_BEGIN

@class HWStarRatingView;

@protocol HWStarRatingViewDelegate <NSObject>

@optional
-(void)starRatingView:(HWStarRatingView *)view score:(float)score;

@end

typedef NS_ENUM(int, HWStarStyle) {
    HWStarStyleWhole      = 0,  //>只能整星评论
    HWStarStyleHalf       = 1,  //>允许半星评论
    HWStarStyleFaculative = 2   //>允许不完整星评论
};
IB_DESIGNABLE
@interface HWStarRatingView : UIView

/// 星星总个数 默认5星
@property (nonatomic, assign) IBInspectable int numberOfStar;
/// 最少星星个数 默认1星
@property (nonatomic, assign) IBInspectable int minNumberOfStar;
/// 星星样式 默认半星评论 (需要传HWStarStyle类型 这里为了适配XIB 改为int类型了) 
@property (nonatomic, assign) IBInspectable int style;
/// 当前评分 0-最大星星总数
@property (nonatomic, assign) IBInspectable float currentStar;

@property (nonatomic, weak) id <HWStarRatingViewDelegate> delegate;

@property (nonatomic, copy) void(^completeBlock)(CGFloat currentScore);
/**
 *  Init TQStarRatingView
 *
 *  @param frame  Rectangles
 *  @param number 星星个数
 *
 *  @return TQStarRatingViewObject
 */
- (id)initWithFrame:(CGRect)frame numberOfStar:(int)number;

/**
 *  设置控件分数
 *
 *  @param score     分数，必须在 0 － 设置的最大星星总数 之间
 *  @param isAnimate 是否启用动画
 */
- (void)setScore:(float)score withAnimation:(bool)isAnimate;

/**
 *  设置控件分数
 *
 *  @param score      分数，必须在 0 － 设置的最大星星总数 之间
 *  @param isAnimate  是否启用动画
 *  @param completion 动画完成block
 */
- (void)setScore:(float)score withAnimation:(bool)isAnimate completion:(void (^)(BOOL finished))completion;
@end

NS_ASSUME_NONNULL_END
